﻿#region << 版 本 注 释 >>
/*----------------------------------------------------------------
 * 版权所有 (c) 2022   保留所有权利。
 * CLR版本：4.0.30319.42000
 * 机器名称：DESKTOP-UL84BU5
 * 公司名称：
 * 命名空间：KingerRobot.WanliMDC.SpiService.Repositories
 * 唯一标识：de962fad-e48f-4b7d-afa9-67da3c6db710
 * 文件名：BWmsEquipErrs
 * 当前用户域：DESKTOP-UL84BU5
 * 
 * 创建者：zzl
 * 电子邮箱：1003590782@qq.com
 * 创建时间：2022/6/2 14:54:16
 * 版本：V1.0.0
 * 描述：
 *
 * ----------------------------------------------------------------
 * 修改人：
 * 时间：
 * 修改说明：
 *
 * 版本：V1.0.1
 *----------------------------------------------------------------*/
#endregion << 版 本 注 释 >>
using KingerRobot.MexicoSailunMDC.Dao;

namespace KingerRobot.MexicoSailunWMS.SpiService;

internal class BWmsEquipErrs : IWmsEquipErrs
{

    public List<POWmsEquipErr> GetEquipErrs()
    {
        var db = Db.Default;
        var result = db.WmsEquipErrs.ToList();
        return result;
    }
    public List<EquipErrBean> GetEquipErrsV2(EquipErrPara equipErrPara)
    {
        var db = Db.Default;
        var result = db.RcsEquips.Join(db.WmsEquipErrs, f => f.Id, s => s.EquipId, (f, s) => new EquipErrBean
        {
            Id = f.Id.GetValueOrDefault(),
            Code = f.EquipCode,
            Name = f.EquipName,
            ErrCode = s.ErrCode,
            ErrMsg = s.ErrMsg,
            StartTime = s.BeginTime,
            EndTime = s.EndTime,
            ErrorTotalTime= s.EndTime==null?0:((s.EndTime ?? DateTime.Now) - (s.BeginTime??DateTime.Now)).TotalSeconds,
        }).Where(t => !String.IsNullOrWhiteSpace(t.ErrMsg) && t.ErrCode != 2220 && t.StartTime >= equipErrPara.StartTime && t.StartTime < equipErrPara.EndTime).OrderByDescending(t => t.StartTime).ToList();

      
        return result;

    }
    public List<EquipErrBean> GetEquipNoFinishErrBeans()
    {
        var db = Db.Default;
        var result = db.RcsEquips.Join(db.WmsEquipErrs, f => f.Id, s => s.EquipId, (f, s) => new EquipErrBean
        {
            Id = f.Id.GetValueOrDefault(),
            Code = f.EquipCode,
            Name = f.EquipName,
            ErrCode = s.ErrCode,
            ErrMsg = s.ErrMsg,
            StartTime = s.BeginTime,
            EndTime = s.EndTime,
        }).Where(t => !String.IsNullOrWhiteSpace(t.ErrMsg) && t.ErrCode != 2220 
        && t.EndTime == null).OrderByDescending(t => t.StartTime).ToList();

        return result;

    }

}
